1. Field of the Invention
The invention relates to the field of production printing systems and, in particular, to print controllers operable to recover from an event during a printing process of a print job, such as a change to printer settings or a hardware error, by purging the print job from a print data path in the print controller, and restarting processing of the print job from the correct page of the print job.
2. Statement of the Problem
Production printing systems associated with data processing enterprises generally include a localized print controller within the printing system. The print controller controls the overall operation of the printing system including, for example, host interfacing, interpretation or rendering, and lower level process control or interface features of print engines of the printing system. Host interaction may include appropriate adapters for coupling the printing system to one or more host systems that transmit print jobs to the printing system. The print jobs are generally encoded in the form of a page description language such as PostScript (PS), PCL, IPDS, etc.
In whatever form the print job may be encoded or formatted, the print controller within the printing system interprets the received information to generate sheetside bitmaps of the print job. The sheetside bitmaps represent the image to be printed on one side of a sheet of paper. Each sheetside bitmap generally comprises a 2-dimensional array of picture elements (“pixels”) that represent a corresponding formatted sheet of the print job. Each pixel may represent an encoded color value in accordance with the requirements of the particular print job encoding and the capabilities of the printing system on which the print job is to be printed.
The print controller stores or buffers the sheetside bitmaps in accordance with storage capabilities of the particular architecture of a particular print controller. The print controller then forwards the sheetside bitmaps to one or more print engines (sometimes also referred to as an “imaging engine” or as a “marking engine”). The print engines have internal queues for storing the sheetside bitmaps to be printed. A print engine pulls the sheetside bitmaps off of the queue, and performs an imaging process to mark the printable medium (e.g., a sheet of paper) with the sheetside bitmaps provided by the print controller. The print engine may comprise a laser print engine, an ink-jet print engine, or another type of imaging system that transfers each sheetside bitmap to corresponding pixels on paper.
There may be instances during the printing process where print settings are changed after some of the sheetside bitmaps have been created and queued up for printing. These changes to the print settings may affect the sheetside bitmaps making them unusable. For example, the changes to the print settings may include a change to width or length of a form, a change to special marks, a change to the sequence or placement of pages on a sheetside, a change to color management, etc. One problem encountered when there is a change to the print settings is how to perform a recovery process so that the print job may be printed according to the changes to the print settings. Because sheetside bitmaps have been created and queued according to the old print settings, the recovery process needs to deal with these queued bitmaps.
One solution to the problem is to stop the printing process with the bitmaps still queued in the print engine and/or the print controller. When the printing process is restarted, the queued bitmaps are printed with the old print settings. The print controller creates new sheetside bitmaps that incorporate the changed print settings, and these new bitmaps are printed after the old bitmaps have been printed. This solution may be undesirable as the printed pages with the old print settings have to be manually identified and then discarded. It may be difficult to identify which of the printed pages represent the old print settings versus the new print settings. Also, if the change to the print settings is a change in paper size, then the old bitmaps may not fit on the new paper size.
Another solution is to print all queued sheetside bitmaps prior to stopping the printing process. This works well when the internal queues of the print engines are small compared to the speed of the print engine. However, this solution may not be desirable if the internal queues are large, as the print engine may run for several minutes after the change to the print settings in order to empty the internal queues of the old bitmaps.
Another solution is to stop the printing process with sheetside bitmaps still queued in the print engine and/or the print controller. If a printer operator desires the next page printed to have the new print settings, then the printer operator can manually cancel the currently printing instances of the job or jobs, and resubmit them with the starting page adjusted to the next page of the job to be printed. This solution may not be desirable as intervention by the printer operator is required.
Another solution is to use host recovery functionality provided by the print data language, such as IPDS, to purge the internal queues and report back to an external host system with the last page printed. The IPDS host system will then resend the pages, beginning with the next page to print, which will have the new print settings applied when printed. The IPDS solution is not possible in non-IPDS environments as an external host system is not necessarily connected to the print controller at print time, nor are redrive mechanisms available in most other print submission protocols. Furthermore, the IPDS solution covers a data stream from a single IPDS host system. Non-IPDS print jobs may arrive from multiple host systems.
Because present solutions may not be adequate, more effective ways of performing a recovery process may be desired.